Communication between two or more computing devices generally requires an initialization procedure. For example, in order for two devices to communicate using WiFi or Bluetooth™, a pairing operation must be performed. Generally the pairing operation is a process in which security credentials are transmitted from one device to another. With Bluetooth™ pairing, for example, a passkey must be exchanged confirming that the two devices are authorized to exchange data. Two devices to be paired generally send and receive signals to communicate the presence of each device to the other device and to exchange security credentials. Data may be securely transmitted (e.g., using data encryption) between the devices once two devices have been paired. Conventional pairing operations generally are performed using radio frequency (RF) electromagnetic signals which may be intercepted by malicious third parties. As such, conventional pairing procedures may leave the devices engaged in the pairing operation open to attack thereby compromising the security of data transfer.
Most communication methods are based on a mapping of data to symbols, a mapping between symbols sent and symbols received, and a mapping of symbols received back to data. These require compromises that limit compatibility between transmitting and receiving devices and reduced robustness of signal communication in the presence of unrelated in-band signals.
A large number of internet-of-things devices and mobile accessories have limited capabilities for communication, and these capabilities may not be initially configured and may later become disabled or compromised. Users desire a simple and intuitive means to identify these devices, identify their locations, create links between these devices and their mobile devices (e.g., computer, tablet, phone), and to receive troubleshooting information. Product industrial designers and manufacturing engineers seek to implement more elegant designs that do not require unique per-unit identifying labels. Security engineers wish to avoid consistent or easily reverse-engineered identifying values. User experience designers seek to avoid awkward processes that require manual entry of identification values, or capture of more complicated graphical codes. The primary user interface for these devices is often implemented on a mobile device with varying hardware and imaging capabilities that is not known in advance by the device manufacturer. Reliable robust and intuitive, localized communication from the device to a heterogeneous population of mobile devices is lacking.